Really create a native window when getting xid
authorAlexander Larsson <alexl@redhat.com>
Wed, 3 Dec 2008 10:55:17 +0000 (11:55 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:14:04 +0000 (10:14 +0200)
gdk/x11/gdkdrawable-x11.c

index 8203f06df88f4e56c0667536209fc3f7b81656b7..5c4abceca392bca1ef69797bb62cd4a157a2dc36 100644 (file)
@@ -871,17 +871,19 @@ gdk_x11_drawable_get_xid (GdkDrawable *drawable)
   
   if (GDK_IS_WINDOW (drawable))
     {
+      GdkWindow *window = (GdkWindow *)drawable;
+      
       /* Try to ensure the window has a native window */
-      if (!GDK_WINDOW_IS_X11 (drawable))
-       gdk_window_set_has_native ((GdkWindow *)drawable, TRUE);
+      if (!_gdk_window_has_impl (window))
+       gdk_window_set_has_native (window, TRUE);
       
-      if (!GDK_WINDOW_IS_X11 (drawable))
+      if (!GDK_WINDOW_IS_X11 (window))
         {
           g_warning (G_STRLOC " drawable is not a native X11 window");
           return None;
         }
 
-      impl = ((GdkPixmapObject *)drawable)->impl;
+      impl = ((GdkWindowObject *)drawable)->impl;
     }
   else if (GDK_IS_PIXMAP (drawable))
     impl = ((GdkPixmapObject *)drawable)->impl;